package com.ruoyi.activity.service;

import java.util.List;

import com.ruoyi.activity.model.domain.Work;
import com.ruoyi.client.model.dto.ApiWorkRequest;
import com.ruoyi.client.vo.ApiExpectWorkVO;
import com.ruoyi.client.vo.UserLoginVO;

/**
 * 作品信息Service接口
 * 
 * @author ruoyi
 * @date 2024-06-28
 */
public interface IWorkService 
{
    /**
     * 查询作品信息
     * 
     * @param id 作品信息主键
     * @return 作品信息
     */
    public Work selectWorkById(Long id);

    /**
     * 查询作品信息列表
     * 
     * @param work 作品信息
     * @return 作品信息集合
     */
    public List<Work> selectWorkList(Work work);

    /**
     * 新增作品信息
     * 
     * @param work 作品信息
     * @return 结果
     */
    public int insertWork(Work work);

    /**
     * 修改作品信息
     * 
     * @param work 作品信息
     * @return 结果
     */
    public int updateWork(Work work);

    /**
     * 批量删除作品信息
     * 
     * @param ids 需要删除的作品信息主键集合
     * @return 结果
     */
    public int deleteWorkByIds(Long[] ids);

    /**
     * 删除作品信息信息
     * 
     * @param id 作品信息主键
     * @return 结果
     */
    public int deleteWorkById(Long id);

    boolean joinWork(ApiWorkRequest apiWorkRequest, UserLoginVO loginUserVO);

    ApiExpectWorkVO getApiExceptWorkVo(Work work);
}
